Thực đơn
Kiểm_tra_Miller-Rabin Giải thuật kiểm tra Miller-RabinINPUT: Số tự nhiên lẻ n.
OUTPUT: NguyenTo: TRUE/FALSE
Định lý: nếu n là hợp số dương lẻ thì trong các số a ∈ { 2 , … , n − 1 } {\displaystyle a\in \{2,\dots ,\ n-1\}} tồn tại không quá n − 1 4 {\displaystyle {\frac {n-1}{4}}} cơ sở a để n là số giả nguyên tố mạnh Fermat.
Gọi A là biến cố "Số n là hợp số", B là biến cố "Kiểm tra Miller-Rabin trả lời n là số nguyên tố". Khi đó xác suất sai của kiểm tra này là xác suất để số n là hợp số trong khi thuật toán cho câu trả lời TRUE, nghĩa là xác suất điều kiện P(A|B).
Theo định lý trên nếu n là hợp số thì khả năng kiểm tra này trả lời TRUE xảy ra với xác suất không vượt quá 1 4 {\displaystyle {\frac {1}{4}}} , nghĩa là P ( B | A ) ≤ 1 4 {\displaystyle P(B|A)\leq {\frac {1}{4}}} . Tuy nhiên để tính xác suất sai của kiểm tra Miller-Rabin cần tính xác suất diều kiện P(A|B). Dựa trên định lý về ước lượng số các số nguyên tố ta đưa ra ước lượng
P ( A ) ≈ 1 − 2 ln n ≈ ln n − 2 ln n {\displaystyle P(A)\approx 1-{\frac {2}{\ln n}}\approx {\frac {\ln n-2}{\ln n}}}Theo định lý Bayes trong lý thuyết xác suất ta có công thức để tính xác suất sai của kiểm tra Miller-Rabin là:
P ( A | B ) = P ( B | A ) ∗ P ( A ) P ( B ) {\displaystyle P(A|B)={\frac {P(B|A)*P(A)}{P(B)}}} = P ( B | A ) ∗ P ( A ) P ( B | A ) P ( A ) + P ( B | A ¯ ) ∗ P ( A ¯ ) {\displaystyle ={\frac {P(B|A)*P(A)}{P(B|A)P(A)+P(B|{\overline {A}})*P({\overline {A}})}}}Trong công thức này P(A) đã biết ở trên, P ( B | A ) ≤ 1 4 {\displaystyle P(B|A)\leq {\frac {1}{4}}} , còn P ( B | A ¯ ) = 1 {\displaystyle P(B|{\overline {A}})=1} vì khi n là số nguyên tố thì chắc chắn mệnh đề Q(n, a) là đúng và P ( A ¯ ) = 1 − P ( A ) = 2 ln n {\displaystyle P({\overline {A}})=1-P(A)={\frac {2}{\ln n}}} .Từ đó
P ( A | B ) = P ( B | A ) ∗ P ( A ) P ( B | A ) P ( A ) + P ( A ¯ ) {\displaystyle P(A|B)={\frac {P(B|A)*P(A)}{P(B|A)P(A)+P({\overline {A}})}}} P ( A | B ) ≈ P ( B | A ) ∗ ( ln n − 2 ) P ( B | A ) ∗ ( ln n − 2 ) + 2 {\displaystyle P(A|B)\approx {\frac {P(B|A)*(\ln n-2)}{P(B|A)*(\ln n-2)+2}}}Theo công thức tính xác suất sai trên đây, với n lớn (cỡ 130 chữ số thập phân), nếu thực hiện phép thử Miller-Rabin chỉ một lần, xác suất sai là khá lớn, tới trên 90%. Để giảm xác suất sai, ta lặp lại phép thử k lần với k số ngẫu nhiên a khác nhau, nếu n vượt qua 50 lần thử thì P ( B | A ) ≤ 1 4 k {\displaystyle P(B|A)\leq {\frac {1}{4^{k}}}} , khi thay vào công thức với 50 lần thử nếu cả 50 lần, phép thử đều "dương tính" thì xác suất sai giảm xuống chỉ còn là một số rất nhỏ không vượt quá 9 ⋅ 10 − 29 {\displaystyle 9\cdot 10^{-29}} .
Thực đơn
Kiểm_tra_Miller-Rabin Giải thuật kiểm tra Miller-RabinLiên quan
Kiểm Kiểm duyệt và phân loại phim Kiểm duyệt ở Việt Nam Kiểm ngư Việt Nam Kiểm soát loài gây hại Kiểm soát sinh sản Kiểm duyệt Facebook Kiểm toán Nhà nước (Việt Nam) Kiểm duyệt Internet ở Việt Nam Kiểm duyệt Internet ở Trung QuốcTài liệu tham khảo
WikiPedia: Kiểm_tra_Miller-Rabin